/**
	Pulsar engine. Additional include file.
	Default MSVC compiler setup

	Copyright (C) 2013-2014 Dmitry Dolgov

	This program is free software; you can redistribute it and/or modify it under the terms of the
	GNU General Public License as published by the Free Software Foundation; either version 2 of
	the License, or (at your option) any later version.
		
	This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
	without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
	See the GNU General Public License for more details.
*/

#if !defined(PL_MSC)
#error "This file requires Microsoft Visual Studio compiler"
#endif

#pragma warning(push, 4)
#pragma warning(disable : 4100 4127 4290 4512 4530)
#pragma warning(disable : 4996) // warning C4996: 'stricmp' was declared deprecated
#pragma warning(disable : 4324) // 'struct_name' : structure was padded due to __declspec(align())

typedef signed char             pl_int8;
typedef signed char             pl_sint8;
typedef unsigned char           pl_uint8;
typedef signed short            pl_int16;
typedef signed short            pl_sint16;
typedef unsigned short          pl_uint16;
typedef signed int              pl_int32;
typedef signed int              pl_sint32;
typedef unsigned int            pl_uint32;
typedef float                   pl_float;
typedef double                  pl_double;

typedef signed __int64          pl_int64;
typedef signed __int64          pl_sint64;
typedef unsigned __int64        pl_uint64;

typedef pl_int32                pl_intptr;
typedef pl_uint32               pl_uintptr;

// Aligned structures
#define PL_ALIGNED_BEGIN(_align_) __declspec(align(_align_))
#define PL_ALIGNED_END(_align_)

// Check cooperative UNICODE, _UNICODE & PL_UNICODE settings
#if defined(UNICODE) || defined(_UNICODE)
#	if !defined(PL_UNICODE)
#		error "MSVC Unicode settings are different with PL_UNICODE/PL_ANSI set"
#	endif
#else
#	if defined(PL_UNICODE)
#		error "MSVC Unicode settings are different with PL_UNICODE/PL_ANSI set"
#	endif
#endif

//
// End of file 'pulsar_setup_msc.h'
//
